home *** CD-ROM | disk | FTP | other *** search
- Polyray Revision History
-
- Version 1.7
- Released: 17 March 1994
-
- o Added parametric surfaces. Now possible to define a mesh
- object (surface) where each point in th emesh is a function
- of u and v.
-
- o Added bump maps
-
- o Added noeval to definitions to cure a particle system bug
-
- o Added support for JPEG images in textures, etc.
-
- o Added support for system calls in 386 version. Can now
- call an external program from within Polyray.
-
- o The default shading flags for raytracing is now set to:
- SHADOW_CHECK + REFLECT_CHECK + TRANSMIT_CHECK +
- CAST_SHADOW + UV_CHECK
- The difference is that it is no longer assumed that surfaces should
- be lit on both sides (normal correction), this boosts rendering speed
- at the cost of funny shading once in a while. UV_CHECK was added to
- allow turning off checking of u/v bounds on objects (also a speedup).
-
- o Changed u_steps, v_steps back to the way it was in v1.5. Now for
- all objects it is uniformly subdivided by exactly the value of
- u_steps/v_steps.
-
- o Significantly enhanced the "function" object. Polyray will now
- accept any predefined function as part of the function definition.
-
- o Added NURBS objects. (Sorry, no trim curves yet.)
-
- o Displacement functions are now possible on CSG objects. They
- also work in raytracing now (although you may need to really
- boost the u_steps and v_steps values to get good results).
-
- o Now supports /* ... */ comments (C style). No you can't nest
- them. You can nest the single line "//" comments within them.
-
- o Internal modifications made that should result in less memory
- usage by objects. Your mileage may vary.
-
- o Modified numeric input to allow numbers like "1.", ".1" - mostly
- cause a user had some BASIC programs that were brain dead about
- putting a 0 in front of the decimal place.
-
- o Fixed up bug in polygon tracing that caused them to drop out
- if they were oriented in just the right way.
-
- o Added a second raw triangle output format - only outputs the
- vertex coordinates. This makes it more compatible with RAW2POV.
- Previous style with normals and u/v still available.
-
- o Removed BSP tree bounding. It wasn't any faster than slabs and
- locked up every once in a while.
-
- o Added a glyph object to support TrueType style extruded surfaces.
- Glyphs are always closed at the top and bottom, they may have both
- straight and curved sides in the same shape. A program to extract
- TrueType information and write into Polyray glyph format is included
- with the documentation archive.
-
- o Support for simple particle systems. Can define birth and death
- conditions, # of objects to generate, and ability to bounce off
- other objects.
-
- o Added many more VESA display modes. There are now 5 SVGA 256 color
- modes, 5 Hicolor modes, and 5 truecolor modes supported. If your
- board doesn't support a selected mode, Polyray tries a lower res one
- having the same # of bytes per pixel.
-
- Version 1.6a (Crud, stuff was still broken...)
- Released: 23 April 1993
-
- o Problems in writing Targa images! Uncompressed/RLE was being set
- improperly in the image file.
-
- o Allocation/Deallocation of static variables had some problems. Mostly
- fixed, however: DONT use a non-static texture in a static object.
-
- o Added some code to "special" surface to make use of an alpha value
- in a color map. If you use "color xxx_map[foo_fn]", it will grab the
- alpha value and use it for the transmission scale. (This overrides
- any transmission scale you might put in later, so beware.)
-
- Version 1.6 (beta)
- Released:
-
- o Added opacity values to 16 and 32 bit Targa output. Just a single
- bit in the 16 bit files. In the 32 bit files the extra channel
- holds the percentage of the background that contributed to the
- pixel.
-
- o Added static (last from frame to frame) variables
-
- o Added indexed and summed textures.
-
- o Added RLE compressed 8 bit Targa files.
-
- o Added VESA Hicolor display in 640x480 (still a bit buggy). Don't
- use anything but "-t 0" or "-t 1" for status displays or the screen
- will go wierd after about 50 lines.
-
- o Added texture maps (similar to color maps), indexed image files (for
- use with texture maps)
-
- o Added output of raw triangle information. Render type 3 will render
- the image as triangles, in ASCII form. Each line of the output has
- the form: v1 v2 v3 n1 n2 n3 uv1 uv2 uv3. Where vx is a 3D vertex, nx
- is the normal at the corresponding vertex, and uv1 is a pair of u,v
- values for each vertex. (This means there are 24 floating point
- values per line.)
-
- o Fixed bug involving conditional include files. If an include directive
- was inside a conditional, the file was read regardless of the value
- of the conditional.
-
- o Smoothed out Bezier surfaces. A patch (smooth) triangle is now used
- instead of a flat one when performing final intersection tests.
-
- o Fixed view bug in scan conversion - if the direction of view was
- along the y-axis & the up was along the z-axis, the image came out
- upside down.
-
- o Added displacement to scan converted surfaces
-
- o Added u-v mapping to most primitives. The variables u and v work
- in all expressions. This is especially useful for image mapping.
-
- o Added u-v limits to several primitives. This allows for creation of
- sections of a primitive.
-
- o Changed scan conversion to be adaptive to the on-screen pixel size.
- Unless limited by u_steps or v_steps, the subdivision of a primitive
- continues until a polygon about the size of a pixel is created. This
- is then drawn. The biggest drawback is the appearance of cracks when
- the adaptive subdivision is different for adjacent parts of a surface.
-
- o Changed the meaning of u_steps and v_steps for most primitives. They
- now mean the number of binary subdivisions that are performed rather
- than the number of steps. Therefore "u_steps 4" in this version is
- equivalent to "u_steps 16" in previous versions. (Unaffected
- primitives: blobs, sweeps, lathes. These still work the old way.)
-
- o Fixed dot product of vectors in expressions.
-
- o Added Legendre polynomials as an expression. Pretty cool for doing
- spherical harmonics.
-
- o Added depth mapped lights. Useful if you need to do shadows of things
- that can only be scan converted (like displacement surfaces).
-
- o Fixed problems with using a torus in CSG. (Only appeared in some
- versions of v1.5)
-
- Version 1.5
- Released: 8 November 1992
-
- o Added textured lights
-
- o Added directional lights
-
- o Added haze
-
- o Found the missing top line in scan converted images -
- Polyray was using the background color for the entire
- top line.
-
- o Added layered textures.
-
- o Expression processing code improved - bugs removed,
- memory used diminished.
-
- o Plugged memory leaks. Extensive debugging of memory
- allocations and frees performed. Animations should be
- much happier now.
-
- o No longer need to define maximum number of primitives.
-
- o Added support for greyscale Targa (type 3) files. These
- can be used as the output format, as imagemaps, and as
- height fields.
-
- o Buggy SVGA support removed. Only standard VGA mode
- (320x200) supported.
-
- o Gridded objects added.
-
- o Arrays added
-
- o Components of CSG objects are now properly sorted by
- bounding slabs
-
- o User defined bounding slabs removed. Polyray will always
- use bounding slabs aligned with the x, y, and z-axes.
-
- o Clipping and bounding objects removed. Clipping is now
- performed in CSG, bounding is specified using a
- "bounding_box" declaration.
-
- o Added wireframe display mode.
-
- o Added planar blob types. (Also added toroidal blob
- types, but they only appear in scan conversion images
- due to the extreme numerical precision needed to
- raytrace them.)
-
- o Added smooth height fields.
-
- o Fixed shading bug involving transparent objects &
- multiple light sources.
-
- o Fixed diffuse lighting from colored lights.
-
- o Changed RLE Targa output so that line boundaries are not
- crossed.
-
-
- Version 1.4
- Released: 11 April 1992
-
- o Support for many SVGA boards at 640x480 resolution in 256
- colors. See documentation for the -V flag. (Note: SVGA
- displays only work on the 286 versions.)
-
- o Changed the way the status output is managed. Now
- requires a number following the -t flag. Note that line
- and pixel status will screw up SVGA displays - drawing
- goes to the wrong place starting around line 100. If
- using SVGA display then either use no status, or
- "totals".
-
- o Added cylindrical blob components. Changed the syntax
- for blobs to accommodate the new type.
-
- o Added lathe surfaces made from either line segments or
- quadratic splines.
-
- o Added sweep surfaces made from quadratic splines.
-
- o Height field syntax changed slightly. Non-square height
- fields now handled correctly.
-
- o Added adaptive antialiasing.
-
- o Squashed bug in shading routines that affected almost all
- primitives. This bug was most noticeable for objects
- that were scaled using different values for x, y, and z.
-
- o Added transparency values to color maps.
-
- o Added new keywords to the file "polyray.ini":
- shadow_tolerance, antialias, alias_threshold,
- max_samples. Lines that begin with "// " in polyray.ini
- are now treated as comments.
-
- o Short document called "texture.txt" is now included in
- "plydoc.zip". This describes in a little more detail
- how to go about developing solid textures using Polyray.
-
- o Added command line argument "-z start_line". This allows
- the user to start a trace somewhere in the middle of an
- image. Note that an image that was started this way
- cannot be correctly resumed & completed. (You may be
- able to use image cut and paste utilities though.)
-
-
- Version 1.3
- (not released)
-
- o Added support for scan converting implicit functions and
- polynomial surfaces using the marching cubes algorithm.
- This technique can be slow, and is restricted to objects
- that have user defined bounding shapes, but now Polyray
- is able to scan convert any primitive.
-
- o A global shading flag has been added in order to
- selectively turn on/off some of the more time consuming
- shading options. This option will also allow for the
- use of raytracing as a way of determining shadows,
- reflectivity, and transparency during scan conversion.
-
- o Added new keywords to the file "polyray.ini": pixel_size,
- pixel_encoding, shade_flags.
-
- o Improved refraction code to (mostly) handle transparent
- surfaces that are defined by CSG intersection.
-
- o Fixed discoloring of shadows that receive some light
- through a transparent object.
-
- o Jittered antialiasing was not being called when the
- option was selected, this has been fixed.
-
- o Fixed parsing of blobs and polygons that had large
- numbers of entries. Previously the parser would fail
- after 50-60 elements in a blob and the same number of
- vertices of a polygon.
-
- o In keeping with the format used by POV-Ray and Vivid,
- comments may now start with "//" as well as "#". The
- use of the pound symbol for comments may be phased out
- in future versions.
-
-
- Version 1.2
- Released: 16 February 1992
-
- o Scan conversion of many primitives, using Z-Buffer
- techniques.
-
- o New primitives: sweep surface, torus
-
- o Support for the standard 320x200 VGA display in 256
- colors.
-
- o An initialization file ("polyray.ini") is read before
- processing. This allows greater flexibility in tuning
- many of the default values used by Polyray.
-
- o User defined bounding slabs added. This greatly improves
- speed of rendering on data files with many small
- objects.
-
- o Noise surface added.
-
- o Symbol table routines completely reworked. Improved
- speed for data files containing many definitions.
-
- o Bug in the texturing of height fields corrected.
-
-
- Version 1.1
- (not released)
-
- o Added parabola primitive
-
- o Dithering of rays, and objects
-
- o Blob code improved, shading corrected, intersection code
- is faster and returns fewer incorrect results.
-
-
- Version 1.0
- Released: 27 December 1991
-
- o Several changes in input syntax were made, the most
- notable result being that commas are required in many
- more places. The reason for this is that due to the
- very flexible nature of expressions possible, a certain
- amount of syntactic sugar is required to remove
- ambiguities from the parser.
-
- o Several new primitives were added: boxes, cones,
- cylinders, discs, height fields, and Bezier patches.
-
- o A new way of doing textures was added - each component of
- the lighting model can be specified by an implicit
- function that is evaluated at run time. Using this
- feature leads to slower textures, however because the
- textures are defined in the data file instead of within
- Polyray, development of mathematical texturing can be
- developed without making alterations to Polyray.
-
- o File flush commands in the data file and at the command
- line were added.
-
- o Several new Targa variants were added.
-
- o Image mapping added.
-
- o Numerous bug fixes have occurred.
-
-
- Version 0.3 (beta)
- Released: 14 October 1991
-
- o This release added Constructive Solid Geometry,
- functional surfaces defined in terms of transcendental
- functions, a checker texture, and compressed Targa
- output.
-
- o Polyray no longer accepted a list of bounding/clipping
- objects, only a single object is allowed. since CSG can
- be used to define complex shapes, this is not a
- limitation, and even better makes for cleaner data
- files.
-
-
- Version 0.2 (beta)
- (not released)
-
- o This release added animation support, defined objects,
- arithmetic expression parsing, and blobs.
-
-
- Version 0.1 (beta)
- (not released)
-
- o First incarnation of Polyray. This version had code for
- polynomial equations and some of the basic surface types
- contained in "mtv".
-
-